﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sistema_Totem.Presentacion.Presentador.Propuestas;
using Sistema_Totem.Presentacion.Contrato.Propuestas;
using AjaxControlToolkit;
using System.Web.SessionState;
using Sistema_Totem.Clases;

namespace Sistema_Totem.Presentacion.Vista.Propuestas
{
    public partial class ModificarPropuesta : System.Web.UI.Page, IContratoModificarPropuesta
    {
        private PresentadorModificarPropuesta _presentador;

        /// <summary>
        /// Constructor de la pagina ModificarPropuesta
        /// </summary>
        public ModificarPropuesta()
        {
            _presentador = new PresentadorModificarPropuesta(this);
        }

        /// <summary>
        /// Page load de la paginna, verifica si el proyecto tiene o no una propuesta
        /// si la tiene, carga el acordion con la informacion a modificar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Sesion["usuario"] == null || Sesion["proyecto"] == null || (Sesion["usuario"] as Usuario).TipoUsuario == "Administrador")
                Response.Redirect("../Login/login.aspx");
            else
            _presentador.ValidarExistenciaPropuesta();
        }

        #region Implementacion Contrato

        /// <summary>
        /// Get del label informativo
        /// </summary>
        public Label etiquetaMensajeInformativo
        {
            get { return LabelMensajeInformativo; }
        }

        /// <summary>
        /// Get del acordeon con la informacion
        /// </summary>
        public Accordion acordeonModificar
        {
            get { return AccordionModificarPropuesta; }
            set { AccordionModificarPropuesta = value; }
        }

        /// <summary>
        /// Get del boton modificar
        /// </summary>
        public Button botonModificar
        {
            get { return ButtonModificar; }
        }

        /// <summary>
        /// Get del boton cancelar
        /// </summary>
        public Button botonCancelar
        {
            get { return ButtonCancelar; }
        }

        /// <summary>
        /// Get de la variable de sesion
        /// </summary>
        public HttpSessionState Sesion
        {
            get { return Session; }
        }


        #endregion Implementacion Contrato

        /// <summary>
        /// Metodo que se dispara al presionar el boton modificar
        /// envia el acordion con la informacion
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonModificar_Click(object sender, EventArgs e)
        {
            _presentador.GenerarXmlPropuesta(AccordionModificarPropuesta);
        }

        /// <summary>
        /// Metodo que se dispara cuando presiona el boton cancelar
        /// redirecciona a la pagina principal del proyecto
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("../Proyectos/ConsultarProyecto.aspx");
        }


        
    }
}